SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO

create PROC [dbo].[SP_TXMVTO_CNTB_Q66]                
/*-------------------------------------------------------------------*/                
/*----- Empresa           : OFISIS S.A.                          ----*/                
/*----- Cliente           : OFISIS S.A.                          ----*/                
/*----- Sistema           : Contabilidad                         ----*/                
/*----- Modulo            : Empresa                              ----*/                
/*----- Programa          : Reporte Libro Mayor General          ----*/                
/*-----      Libro Electronico               ----*/                
/*----- Nombre            : SP_TXMVTO_CNTB_Q66                   ----*/                
/*----- Script            : TXMVTO_CNTB                          ----*/                
/*----- Desarrollado por  : Israel Estrada Polanco               ----*/                
/*----- Fecha             : 11/10/1997                           ----*/                
/*----- Base de Datos     : MS SQL Server                        ----*/                
/*----- Version BD        : 2000                                 ----*/                
/*-------------------------------------------------------------------*/                
/*-------------------------------------------------------------------*/              
/*----- Modificado 4      : PDGV                                 ----*/              
/*----- Fecha             : 17/05/2006                           ----*/              
/*----- Detalle           : EL ORDER BY FINAL SE AUMENTO DOC, FECHAASTO,NU_ASTO ----*/              
/*-------------------------------------------------------------------*/              
/*-------------------------------------------------------------------*/                
/*----- Drop proc SP_TXMVTO_CNTB_Q66                             ----*/                
/*----- Grant Execute on SP_TXMVTO_CNTB_Q66 to PUBLIC            ----*/                
/*----- SP_TXMVTO_CNTB_Q66                                       ----*/                
/*-------------------------------------------------------------------*/                
/*Exec SP_TXMVTO_CNTB_Q58  
'01', 1, 2010,9, 9, 'SOL', '','', '','', '', '', '', 7, 'CUD','OFISIS', '','', 'G'   
 commit  
  
*/                
                
@ISCO_EMPR                TD_VC_002,                
@INNU_CNTB_EMPR           TD_IN_001,                
@INNU_ANNO                TD_IN_004_ANNO,                
@INNU_MESE_INIC           TD_IN_002_MESE,                
@INNU_MESE_FINA           TD_IN_002_MESE,                
@ISCO_MONE                TD_VC_003,                
@ISCO_UNID_CNTB           TD_VC_003,                
@ISCO_OPRC_CNTB           TD_VC_003,                
@ISCO_CNTA_EMP1           TD_VC_020_CNTA,                
@ISCO_CNTA_EMP2           TD_VC_020_CNTA,                
@ISTI_AUXI_EMPR           TD_VC_001,                
@ISCO_AUXI_EMP1           TD_VC_020,                
@ISCO_AUXI_EMP2         TD_VC_020,                
@INNV_INFO_CNTA           TD_IN_001,                
@ISTI_REPO                TD_VC_003,                
@ISNO_USUA                TD_VC_050,                
@ISCA_WHER_MOVI           Varchar(2000),            
@ISCA_WHER_SALD           Varchar(2000),            
@ISIN_UNID    TD_VC_001      -- U = Unidad, G = Todas las Unidades            
            
As      
/*---------------------------------------                
   Creando tabla temporal para el reporte                 
  ---------------------------------------*/                    
                
Declare                 
/* Variables a usar en el proceso */                
        @VSTI_AUXI      TD_VC_010,                
        @CSCO_CNTA      TD_VC_020_CNTA,                
        @CSNO_CNTA      TD_VC_050,                
        @CNIM_CARG      TD_NU_016_004,                
        @CNIM_ABON      TD_NU_016_004,                 
        @VNNU_MESE      TD_IN_001,                
        @VNNU_SECU      TD_IN_002,                
        @VSCO_CNTA      TD_VC_020,                
        @VSCO_UNID      TD_VC_003,                
        @VSCO_OPRC      TD_VC_003,                
        @VSNU_ASTO      TD_VC_010,                
        @VSTI_DOCU      TD_VC_003,                
        @VSCO_MONE_CONT TD_VC_003,                
        @VSNU_DOCU      TD_VC_020,                 
        @VDFE_DOCU      TD_DT_001,                
        @VSDE_GLOS      TD_VC_100,                
        @VNIM_DEBE      TD_NU_016_004,                
        @VNIM_HABE      TD_NU_016_004,                
        @VSDE_CMD1      Char(255),                
        @VSDE_CMD2      Char(255),                
        @VNIM_SALD_CARG TD_NU_016_004,                        
        @VNIM_SALD_ABON TD_NU_016_004,                
        @VNIM_CARG_INIC TD_NU_016_004,                
        @VNIM_ABON_INIC TD_NU_016_004,                
        @VNTO_CARG_GENE TD_NU_016_004,                
        @VNTO_ABON_GENE TD_NU_016_004,                
        @VSNU_MESE      Varchar(2),                
        @VSNU_ANNO      Varchar(4),                
        @VSNV_INFO_CNTA Varchar(2),                
        @VSNU_CNTB_EMPR Varchar(2),                
        @VSIM_CARG      Varchar(20),                
        @VSIM_ABON      Varchar(20),            
        @VSCA_UNID_MOVI TD_VC_255,             
        @VSCA_UNID_SALD TD_VC_255,            
        @VSCA_CNTA_MOVI TD_VC_255,             
        @VSCA_CNTA_SALD TD_VC_255,            
        @VSCA_MONE_MOVI TD_VC_255,             
        @VSCA_MONE_SALD TD_VC_255,            
        @VSCA_MONE_REPO TD_VC_255,            
        @VSST_FILT Varchar(1)             
            
            
  
delete #TWMVTO_CNTB_Q13_1  
  
Select @VSST_FILT = 'N'            
If DataLength(Rtrim(Ltrim(@ISCA_WHER_SALD))) > 0            
  Select @VSST_FILT = 'S'            
            
/*----------- FILTRO POR UNIDAD -------------*/            
Select @VSCA_UNID_MOVI = '' Select @VSCA_UNID_SALD = ''            
            
If @ISIN_UNID = 'U'            
 Begin            
  Select @VSCA_UNID_MOVI = ' And TXMVTO_CNTB.CO_UNID_CNTB = "' + @ISCO_UNID_CNTB + '" '            
  Select @VSCA_UNID_SALD = ' And TASALD_EMPR.CO_UNID_CNTB = "' + @ISCO_UNID_CNTB + '" '            
 End            
            
/*----------- R E P O R T E S   D E   C U E N T A S ------------*/            
Select @ISCO_CNTA_EMP1 = IsNull(@ISCO_CNTA_EMP1, '')            
Select @ISCO_CNTA_EMP2 = IsNull(@ISCO_CNTA_EMP2, '')            
            
/*----------- FILTRO POR RANGO CUENTAS -------------*/            
Select @VSCA_CNTA_MOVI = '' Select @VSCA_CNTA_SALD = ''            
If @ISCO_CNTA_EMP1 != '' And @ISCO_CNTA_EMP2 != ''            
Begin            
 Select @VSCA_CNTA_MOVI = ' And TMPLAN_EMPR.CO_CNTA_EMPR >= "' + @ISCO_CNTA_EMP1  + '" And TMPLAN_EMPR.CO_CNTA_EMPR <= "' + @ISCO_CNTA_EMP2  + '" '       Select @VSCA_CNTA_SALD = ' And TASALD_EMPR.CO_CNTA_EMPR >= "' + @ISCO_CNTA_EMP1 + '"       
And TASALD_EMPR.CO_CNTA_EMPR <= "' + @ISCO_CNTA_EMP2 + '" '             
End            
            
/*----------- FILTRO POR MONEDA -------------*/            
            
Select @VSCO_MONE_CONT = CO_MONE            
From TTCNTB_EMPR             
Where CO_EMPR = @ISCO_EMPR           
And NU_CNTB_EMPR = @INNU_CNTB_EMPR             
            
-- Si la moneda de reporte es igual a moneda de la contabilidad            
If @ISCO_MONE = @VSCO_MONE_CONT            
Begin            
   Select @VSCA_MONE_MOVI =             
        ' (ASCII(TXMVTO_CNTB.TI_OPER)/67)*Round(IsNull(TXMVTO_CNTB.IM_MVTO_CNTB, 0), 2),            
          (65/ASCII(TXMVTO_CNTB.TI_OPER))*Round(IsNull(TXMVTO_CNTB.IM_MVTO_CNTB, 0), 2) '            
   Select @VSCA_MONE_SALD =             
        ' Isnull(SUM(ISNULL(TASALD_EMPR.IM_CARG_CNTB,0)), 0) AS CARGO,            
          Isnull(SUM(ISNULL(TASALD_EMPR.IM_ABON_CNTB,0)), 0) AS ABONO '            
   Select @VSCA_MONE_REPO = ' '            
End            
-- Si la moneda de reporte es Diferente a moneda de la contabilidad            
Else If @ISCO_MONE != @VSCO_MONE_CONT            
Begin            
   Select @VSCA_MONE_MOVI =             
        ' (ASCII(TXMVTO_CNTB.TI_OPER)/67)*Round(IsNull(TXMVTO_CNTB.IM_MVTO_ORIG, 0), 2),            
          (65/ASCII(TXMVTO_CNTB.TI_OPER))*Round(IsNull(TXMVTO_CNTB.IM_MVTO_ORIG, 0), 2) '            
   Select @VSCA_MONE_SALD =             
        ' Isnull(SUM(ISNULL(TASALD_EMPR.IM_CARG_ORIG,0)), 0) AS CARGO,            
          Isnull(SUM(ISNULL(TASALD_EMPR.IM_ABON_ORIG,0)), 0) AS ABONO '            
   Select @VSCA_MONE_REPO = '  And   TMPLAN_EMPR.CO_MONE = "' + @ISCO_MONE  + '" '            
End            
            
            
Select @VNNU_MESE = @INNU_MESE_INIC            
Select @VSNU_ANNO = Convert(Varchar, @INNU_ANNO)                
Select @VSNU_CNTB_EMPR = Convert(Varchar, @INNU_CNTB_EMPR)                
Select @VSNV_INFO_CNTA = Convert(Varchar, @INNV_INFO_CNTA)            
            
While @VNNU_MESE <= @INNU_MESE_FINA            
Begin                
  Select @VSNU_MESE = Convert(Varchar, @VNNU_MESE)            
            
  EXEC('Insert Into #TWMVTO_CNTB_Q13_1(            
  NU_MESE_QUIE, CO_CNTA_EMPR, DE_CNTA_EMPR, TO_CARG,      TO_ABON,      NU_MESE,      FE_ASTO_CNTB,  NU_SECU,             
  CN_CNTB_EMP1, TI_AUXI_EMPR, CO_AUXI_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ASTO,      TI_DOCU,       NU_DOCU,             
  FE_DOCU,      IM_MVTO_ORIG, DE_GLOS,      IM_DEBE,      IM_HABE,      CO_TABL_ORIG, CO_CLAV_TAOR,  CO_ORDE_SERV)            
            
  Select ' +@VSNU_MESE+ ',  TMPLAN_EMPR.CO_CNTA_EMPR, TMPLAN_EMPR.DE_CNTA_EMPR, 0.00, 0.00,            
  TXMVTO_CNTB.NU_MESE,      TXMVTO_CNTB.FE_ASTO_CNTB, TXMVTO_CNTB.NU_SECU,      TXMVTO_CNTB.CO_CNTA_EMPR,             
  TXMVTO_CNTB.TI_AUXI_EMPR, TXMVTO_CNTB.CO_AUXI_EMPR, TXMVTO_CNTB.CO_UNID_CNTB, TXMVTO_CNTB.CO_OPRC_CNTB,             
  TXMVTO_CNTB.NU_ASTO,      TXMVTO_CNTB.TI_DOCU,      TXMVTO_CNTB.NU_DOCU,      TXMVTO_CNTB.FE_DOCU,        
  Round(IsNull(TXMVTO_CNTB.IM_MVTO_ORIG, 0), 2),      TXMVTO_CNTB.DE_GLOS,             
  ' + @VSCA_MONE_MOVI + ',            
  TXMVTO_CNTB.CO_TABL_ORIG, TXMVTO_CNTB.CO_CLAV_TAOR, TXMVTO_CNTB.CO_ORDE_SERV            
  From TMPLAN_EMPR               
    Left Outer Join TXMVTO_CNTB      
    On TXMVTO_CNTB.CO_EMPR = "' + @ISCO_EMPR + '"              
    And  TXMVTO_CNTB.NU_CNTB_EMPR = ' + @VSNU_CNTB_EMPR + '              
    And  TXMVTO_CNTB.NU_ANNO = ' + @VSNU_ANNO + '              
    And  TXMVTO_CNTB.NU_MESE = ' + @VSNU_MESE +  @VSCA_UNID_MOVI + @VSCA_CNTA_MOVI + '            
    And  TXMVTO_CNTB.SI_MVTO_CNTB = "APR"               
    And  TMPLAN_EMPR.CO_EMPR = TXMVTO_CNTB.CO_EMPR      
    And  TMPLAN_EMPR.CO_CNTA_EMPR = TXMVTO_CNTB.CO_CNTA_EMPR ' + @ISCA_WHER_MOVI + '       
  Where TMPLAN_EMPR.CO_EMPR = "' + @ISCO_EMPR + '"      
  And   Datalength(Rtrim(TMPLAN_EMPR.CO_CNTA_EMPR)) = ' + @VSNV_INFO_CNTA +  @VSCA_MONE_REPO +'    
  And  TMPLAN_EMPR.NU_ANNO = 9999 '  )            
            
  Select @VNNU_MESE = @VNNU_MESE + 1            
End ---While            
            
return              
            
/*--------------------------------------------- Fin ---------------------------------------------------------------*/      

GO
